package com.mdd.maduoduo.di.component;

import android.content.Context;

import com.mdd.maduoduo.MyApplication;
import com.mdd.maduoduo.activity.BaseActivity;
import com.mdd.maduoduo.di.ApplicationModule;
import com.mdd.maduoduo.domain.executor.PostExecutionThread;
import com.mdd.maduoduo.domain.executor.ThreadExecutor;
import com.mdd.maduoduo.fragment.BaseFragment;

import javax.inject.Singleton;

import dagger.Component;
import retrofit2.Retrofit;

@Singleton
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {

    void inject(BaseActivity activity);

    void inject(BaseFragment fragment);

    MyApplication application();

    Context context();

    ThreadExecutor threadExecutor();

    PostExecutionThread postExecutionThread();

    Retrofit retrofit();
}
